#pragma once
#include <OgreString.h>
#include "GameLevel.h"
#include "rapidxml/rapidxml.hpp"
#include "XMLCommonLoader.h"

class GameLevelDescriptionLoader : XMLCommonLoader
{
public:
	GameLevelDescriptionLoader(void);
	~GameLevelDescriptionLoader(void);

	void parseGameLevel(const Ogre::String &fileName, const Ogre::String &groupName);
	GameLevel* getGameLevel(void) { return this->gameLevel; }

private:
	GameLevel* gameLevel;

	void processGameLevel(rapidxml::xml_node<>* XMLRoot);
	void processLevel(rapidxml::xml_node<>* XMLNode);
	void processSublevel(rapidxml::xml_node<>* XMLNode);
	void processSceneFile(rapidxml::xml_node<>* XMLNode);
	void processCharacterEnable(rapidxml::xml_node<>* XMLNode);
	void processEnemies(rapidxml::xml_node<>* XMLNode);
};
